package methodref02;

import org.junit.Test;

import java.util.function.Function;

/**
 * 构造方法引用格式:
 *   类名::new
 * 数组对象引用格式
 *   类型[]::new
 */
public class MethodRefDemo04 {
    @Test
    public void test01(){
        // 创建一个Person类的对象，获取这个对象
        // Function<String,Person> f = name->new Person(name);

        // 简化
        Function<String,Person> f = Person::new ;

        System.out.println(f.apply("三峰"));  // Person{name='三峰'}

    }

    @Test
    public void test02(){
     // 创建一个指定长度的数组，返回这个数组对象
        // Function<Integer,int[]> f = n->new int[n];

        //改造
         Function<Integer,int[]> f = int[]::new;


        System.out.println(f.apply(4));  // [I@6adca536
        System.out.println(f.apply(4).length); // 4
    }
}
